<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
    // 基于c语音的git
       //分散式管理 
    

    //1  拉取项目
         //去了一个新公司，首先就是要克隆公司的代码到本地
         // git clone 仓库地址
         //clone完成之后，本地仓库就与远程仓库自己进行了链接，
         //接下来我们就可进行自己的开发以及自己的代码提交了

    
    //2  创建分支
        //首先拉取项目到自己的电脑上，创建自己的开发分支，
        //以后提交代码都主要在自己的开发分支上进行提交
        //git beanch -a 
        //然后创建自己的分支
        //git beanch 分支名称
        
        //切换到自己创建的分支
        //git checkout 需要切换到的分支的名称 

        //上述的两个命令可以合并成一个命令，创建并切换掉分支 
        //git checkouot -b 分支名称

        //创建完分支并切换之后，查看自己当前的分支
        //git beanch 

     
    //3  提交代码到缓存
        //git add . 全部的



    //4  代码提交注释(托管+描述项)
        //一般代码提交时我们要写注释，即注释有一定的规范
        //这个跟公司规定有关，按公司规范提交即可
        //例如:
          //feat:   增加新功能
          //fix :   修复bug
          //docs:   只改动文档
          //stuyle  格式(不影响代码运行的改动) 
          //refactor重构
          //test:   增加测试
        //git commit -m"注释内容"
        //比如我们增加了一个自己的新模块 
        //git commit -m"feat:完成了订单下载模块"


    //5  代码提交 (往指定分支进行push) 
        //代码写完后就可以提交到我们自己的开发分支上面去了
        //git push origin  提交的分支名字(origin & master)


    //——————————————————————————————————————————————————————————————————————————————————————————————————？、        

    //远程操作指令
      //1显示所有远程仓库
          // git remote -v 

      //2获取远程仓库的变动
          // 一般是将远程代码取下来，然后去和git marge 做合并处理
          // git fatch origin 分支名字(origin & master)

      //3将代码进行合并
          //git merge 分支名  
          
      //4拉取远程仓库代码并与本地分支合并
          //git pull

      //5强行推送当前分支到远程仓库，即使有冲突
          //git push --forece 


     //——————————————————————————————————————————————————————————————————————————————————————————————————————————

      //其他命令 
      //1 初始胡git
          // git init 
      //2 显示有变更的文件状态
          // git status 
      //3 显示当前分支版本历史
          // git log
      //4 显示提交的历史和发生变更的文件
          // git log --stat
      //5 显示过去5(n)次提交
          //git log -5 --pretty --oneline
      //6 显示该仓库所提交过代码的用户，并按照提交次数排名
          //git shortlog -sn
      //7 显示今天提交的文件变更，代码变动的行数
          //git diff --shortstat "@{0 day ago}" 

     //——————————————————————————————————————————————————————————————————————————————————————————————————————————
    
       //代码回滚
       //1 回退到上一个版本
           // git reset --hard HEAD^
       //2 回退到N次提交之前
           // git reset --hard HEAD~n
       //3 回退指定的提交版本
           // git reset --hard commit"commit的哈希值"
       //这个哈希值就是输入git log之后看到的一大串字符串
       //比如说git reset --hard 98ajbfjabdf234sds
       //回滚有可能代码提交会失败，必须强制推送远程
       // git push origin HEAD --force 

    //    oh    hhha~~~


    

    //使用git多人操作一个文件，出现冲突任何解决
        //先将远程文件先柜台git pull 下来
        //手动修改冲突代码后
        //再git add，git commit,git push到远程仓库 

    //如果pull也解决不了冲突，可以先通过git stash暂存下来然后再pull拉取
    //然后git stash pop，取出原来写的，手动修改，然后提交 



//————————————————————————————————————————————————————————————————————————svn————————————————————————————————————
// svn 是什么？ 
     
//     代码管理工具
//     它能记住你每次的更改
//     查看每次的修改记录
//     恢复到任何的历史版本
//     恢复已经删除的文件

// svn&git ？
//     使用简单，上手快
//     目录授权限控制，企业安全必备
//     子目录Checket 减少不必要的文件检查

// 主要应用 ？
//     开发人员用来做代码的版本管理
//     用来储存重要的文件，比如合同
//     公司内部的共享文件，并且能够按目录划分权限

// svn仓库 ？
// 安装svn客户端 ?
//     window TortoiseSVN 安装 
//     mac    Cornstone   苹果 


// svn 原理 ？
//     工作原理-服务端
//     中央仓库 存放所有的版本  

     
// svn 在做什么？
//     做4大件事  
//     1由(老大 share project)发布项目            将本机的项目 第一次发布到中央仓库
//     2由(checkout，检出项目) 下载项目           组员将中央仓库的项目 第一次下载到本机

// ---------------频繁操作要及时更新提交防止冲突     
//     3提交(commit) 将本地修改的内容      同步到服务中       （本地————>服务器）
//         编写完某个小功能 每天下班前提交  把自己的推送上去
//     4更新(undate) 将服务器中的最新代码   同步到本地     （服务器————>本地）
//         编写功能之前，每天上班前更新     看那些功能写了 

//编写之前先更新-写完之后马上提交-保持一致                   
















  
























         




     



</script>